然而,随着项目的扩大,依赖关系的数量也在增加。这可能会使项目的环境难以重现,并且在仅仅依靠pip或conda进行依赖性管理时难以有效地维护它。
此时 Poetry 应运而生,它是一个开源库,提供了一个强大的工具来创建和维护具有一致环境的Python项目。在这篇文章中,我们将深入探讨Poetry的优势,并强调它与pip和conda的主要区别。
安装的便利性一键轻松安装过程,能够快速采用并将软件包集成到我们的代码库中,从而节省时间和精力。
CondaConda的安装格式对于不同的软件包是不一致的。例如,要安装polars,你需要运行:
代码语言:javascript复制conda install -c conda-forge polar而要安装pandas,命令是:
代码语言:javascript复制conda install -c anaconda pandasPipPip对每个软件包都有一致的安装格式:
代码语言:javascript复制pip install package-namePoetryPoetry也都遵循相同的安装格式:
代码语言:javascript复制poetry add package-name可用的packages软件包选择空间大,使得找到最适合需求的特定软件包和版本更容易。
Conda有些软件包,如 "snscrape",不能通过conda安装。此外,某些版本,如Pandas 2.0,可能无法通过Conda安装。
虽然可以在conda的虚拟环境中使用pip来解决软件包的限制,但conda不能跟踪用pip安装的依赖关系。
代码语言:javascript复制$ conda list# packages in environment at /Users/khuyentran/miniconda3/envs/test-conda:## NameVersionBuild ChannelPipPip可以安装来自Python Package Index (PyPI)和其他存储库的任何软件包。
PoetryPoetry还可以安装来自Python Package Index (PyPI)和其他存储库的软件包。
依赖关系的数量减少环境中的依赖性,可以简化开发过程。
CondaConda提供完全的环境隔离,同时管理Python软件包和系统级的依赖关系。与其他软件包管理器相比,这可能会导致软件包太大,在安装和分发时可能会消耗